ECSリソースへのタグ付けを行おうとすると「リソースがタグをサポートしていません。」と表示された時の対応方法
困っていた内容
ECSリソース(タスク、サービス、タスク定義、クラスター)に対して、タグの付与を実施しようとしています。
タグを新規に付与するために、AWS ECSコンソールからタグを付与したいリソースを選択し、「タグ」のタブをクリックしたのですが、下記のメッセージが表示されるのみで、タグエディタ画面へ遷移しません。
リソースがタグをサポートしていません。タグ付けするには、新しいARNことリソースIDの形式をオプトインする必要があります。
ECSリソースにタグを付与するには、どうすればよいのでしょうか?
どう対応すればいいの?
既存ECSリソースにタグ付けが行えない原因
ECSリソースにタグ付けを行うには、ECSリソース作成時に利用されたIAMロールまたはIAMユーザが新形式の Amazon リソースネーム (ARN) とリソース識別子 (ID) をオプトインしている必要があります。
新形式の Amazon リソースネーム (ARN) およびリソース ID のオプトイン/オプトアウトは既存のリソースには影響しません。そのため、新形式の ARN および リソースID がオプトアウトの状態で作成されたECSリソースにタグ付けを行う必要がある場合、オプトインされたIAMロールまたはIAMユーザーを使用してタスクやサービスを作成し直す必要があります。
オプトインした後に起動されたリソースだけが、新形式の ARN とリソース ID、または引き上げられた ENI の制限を受け取ります。既存のリソースは、いずれも影響を受けません。Amazon ECS のサービスおよびタスクを新形式の ARN とリソース ID に移行するためには、そのサービスまたはタスクを作成し直す必要があります。
引用:アカウント設定 - Amazon Elastic Container Service
新しいARN および リソースIDの形式をオプトインする方法
ECSのアカウント設定から、[Amazon ECS の ARN とリソース ID の設定]を変更します。
コンソールから変更する場合
ECSコンソールを開き、左ペインのメニューから[Account Settings]を開きます。
変更対象のアカウントやIAMユーザ、IAMロールの情報が画面上部に表示されていることを確認します。
[Amazon ECS の ARN とリソース ID の設定]のそれぞれのリソースに対し、[自分のIAMユーザーまたはロールアカウント設定]をEnabledに変更します。
AWS CLIで下記のコマンドを実行します。実行コマンドは、設定変更の対象が「デフォルトアカウント」「現在利用しているIAMユーザ」「特定のIAMユーザまたはIAMロール」のいずれかによって異なります。
リージョン名やIAMユーザ、IAMロールのARNは、適宜置き換えてください。
- デフォルトアカウントの設定を変更する場合
aws ecs put-account-setting-default --name serviceLongArnFormat --value enabled --region <リージョンコード>
- 現在利用しているIAMユーザの設定を変更する場合
aws ecs put-account-setting --name serviceLongArnFormat --value enabled --region <リージョンコード>
※rootユーザで上記コマンドを実行する場合、アカウント全体に変更が適用されます。
- 特定のIAMユーザまたはIAMロールの設定を変更する場合
aws ecs put-account-setting --name serviceLongArnFormat --value enabled --principal-arn <IAMユーザまたはIAMロールのARN> --region <リージョンコード>
参考情報
Amazon ECS リソースのタグ付け - Amazon Elastic Container Service
アカウント設定の変更 - Amazon Elastic Container Service
アカウント設定 - Amazon Elastic Container Service
テクニカルサポートノートとは?
クラスメソッドのカルチャー(CLP) の「情報発信を通じて、全ての人々の創造活動に貢献し続ける」という考えから、クラスメソッド メンバーズをご利用のお客様よりいただいたお問い合わせより、他の AWS ユーザーにとっても 有益な情報を一般的な TIPS としてご紹介しています。